SpringBoot中使用Mybatis和PageHelper 您所在的位置:网站首页 pagehelper 使用教程 SpringBoot中使用Mybatis和PageHelper

SpringBoot中使用Mybatis和PageHelper

2022-12-16 06:22| 来源: 网络整理| 查看: 265

Mybatis-PageHelper: Mybatis通用分页插件 PageHelper。

GitHub开源项目地址

下面看一个PageHelper的使用示例:

maven:

org.mybatis.spring.boot mybatis-spring-boot-starter 1.1.1 com.github.pagehelper pagehelper-spring-boot-starter 1.2.3

配置:

#mybatis mybatis.mapper-locations=classpath:mybatis/mapper/*.xml mybatis.configuration.map-underscore-to-camel-case=true mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl 第一个配置:为xml的文件地址。 第二个配置:MySQL一般定义字段用下划线表示,比如book_name,good_id··· 在spring boot项目中使用mybatis框架开发时,在写好SQL select查询语句后, 发现查询出的对象字段都为null,这个时候要检查SQL语句查询返回的字段和映射实体类属性是否一致, 如果不使用mybatis配置,则需要使用as重命名,不过这样要敲很多键盘, 不仅写出的SQL有些冗杂,而且易出错,所以推荐使用mybatis配置项。 该配置项就是指将带有下划线的表字段映射为驼峰格式的实体类属性。 因此,添加了该项配置后,在开发中只需要根据查询返回的字段,创建好实体类就可以了! 第三个配置:输出打印日志。 #pagehelper pagehelper.helperDialect=mysql pagehelper.reasonable=true 第一个配置:使用mysql数据库。 第二个配置:当设置为true时自带分页参数合理话。

接口层:

public Result getUserListPage(@RequestBody UserListReqVO reqVO) { PageInfo appsPageInfo = new PageInfo(accountService.getUserExList(reqVO, getCompanyId())); return ResultUtil.success(appsPageInfo); }

Service服务层:

@Override public List getUserExList(UserListReqVO reqVO, int companyId){ PageHelper.startPage(reqVO.getPageIndex(),reqVO.getPageSize()); return userModelMapper.getUserExList(reqVO, companyId); }

请求VO公共类(分页):

import java.io.Serializable; public class BaseReqVO implements Serializable { private static final long serialVersionUID = -5920501218429629828L; /** * 页码 */ private Integer pageIndex=1; /** * 条数 */ private Integer pageSize=10; /** * 起始数 */ private Integer pageStart; public BaseReqVO() { } public Integer getPageIndex() { return pageIndex; } public void setPageIndex(Integer pageIndex) { this.pageIndex = pageIndex; } public Integer getPageSize() { return pageSize; } public void setPageSize(Integer pageSize) { this.pageSize = pageSize; } public Integer getPageStart() { return (pageIndex - 1) * pageSize; } public void setPageStart(Integer pageStart) { this.pageStart = pageStart; } public void initPage(){ this.pageStart = (pageIndex - 1) * pageSize; } @Override public String toString() { return "BaseReqVO{" + "pageIndex=" + pageIndex + ", pageSize=" + pageSize + ", pageStart=" + pageStart + '}'; } }

一些Mybatis常用代码:

mapper的接口有两个参数时:

mapper接收两个参数: List getRoleList(@Param("reqVO")RoleListReqVO reqVO, @Param("companyId")int companyId); xml文件: SELECT * FROM s_role where CompanyId = #{companyId} AND RoleName like CONCAT(CONCAT('%',#{reqVO.roleName},'%')) ORDER BY Id desc

返回自增主键时:

useGeneratedKeys="true" keyProperty="id"

批量插入时,service需要加事务:

mapper: int insertBatch(List list); xml文件: insert into s_role_permission (PermissionId, RoleId, CreateTime, UpdateTime ) values (#{item.permissionid,jdbcType=INTEGER}, #{item.roleid,jdbcType=INTEGER}, #{item.createtime,jdbcType=TIMESTAMP}, #{item.updatetime,jdbcType=TIMESTAMP} )

批量插入,且xml两条语句,service需要加事务:

mapper: int oneKeyPayUpdate(Map map); xml文件: update grantdetails set Status=#{status},SendDate=#{sendDate},OperUser=#{operUser},RealityCount=[Count] where ID in #{name} ; update `grant` set Status=#{status},OperUser=#{operUser} where ID=#{gid};

Mybatis自动生成:

添加 mybatis-generator.xml 文件,这里还需要application.properties的数据库配置:

添加插件:

org.mybatis.generator mybatis-generator-maven-plugin 1.3.5 mysql mysql-connector-java 8.0.17 org.mybatis.generator mybatis-generator-core 1.3.5 Generate MyBatis Artifacts package generate true true src/main/resources/mybatis/mybatis-generator.xml


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有